Vue文本模糊匹配功能如何实现
el: '#app',
*/
<head>
全局注册了my-select组件后,可以删除app里的message数据,使用v-show来控制选项的显示,运行效果和计算属性方式相同。缺点就是无法单文件化(刚学vue没多久,不知道怎么在单文件里使用作用域插槽,试过直接把template里的东西封装成my-option好像并不管用)
</head>
<div>
一、最简单的模糊匹配:计算属性
*/
* @param {string} eventName 事件名
return {
return this.options.filter(option => option.includes(this.message))
最后,通过设置查询条件来控制子组件的显示与隐藏即可实现实时模糊搜索。
<title>Document</title>
<script src="https://www.wpmee.com/vue.js"></script>
首先需要一个emitter文件:
* @param {...any} params 事件参数
</html>
this.$parent.$emit(eventName, ...params)
<li v-for="(option, index) in options" :key="index" v-show="option.includes(message)">{{ option }}</li>
* @param {string} eventName 事件名
<html lang="zh-CN">
模糊匹配功能在下拉菜单的组件中用的非常多,于是打算写几个demo看看细节上是如何实现的。
<script>
<div>
* @param {string} componentName 父组件名
<ul>
computed: {
}
}
broadcast(componentName, eventName, ...params) {
<script src="https://www.wpmee.com/vue.js"></script>
</script>
<title>Document</title>
<input type="text" v-model="message">
}
options: ['html', 'css', 'javascript']
if (this.$parent) {
</div>
<input type="text" v-model="message">
* @param {string} componentName 子组件名
function _dispatch(componentName, eventName, ...params) {
二、使用作用域插槽实现
_dispatch.call(this, componentName, eventName, ...params)
<li v-for="(option, index) in matchedOptions" :key="index">{{ option }}</li>
<script>
<!DOCTYPE html>if (child.$options.name === componentName) {
}
_dispatch.call(this.$parent, componentName, eventName, ...params)
</div>
})
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
<div>
<body>
}
</ul>
* 子组件广播事件
}
}
data: {

</html>
})
}
new Vue({
*/
template: `
三、混入广播和派发方法在独立组件中实现模糊匹配
<meta http-equiv="X-UA-Compatible" content="ie=edge">
child.$emit(eventName, ...params)
message: '',
}
<head>
`,
if (this.message !== '') {
* 父组件派发事件
注意,这里的$children和$parent都是指具有dom父子关系的vue组件。
new Vue({
<slot :message="message"></slot>
使用插槽主要是为了使该功能组件化:在select组件中插入option,然后option通过作用域插槽从select中获取文本值:
</body>
matchedOptions() {
</my-select>
})
methods: {
Vue.component('my-select', {
</div>
<!DOCTYPE html>}
<meta charset="UTF-8">
dispatch(componentName, eventName, ...params) {
el: '#app',
_broadcast.call(this, componentName, eventName, ...params)
<meta content="width=device-width, initial-scale=1.0">
/**<meta charset="UTF-8">
data: {
</script>
<my-select>
options: ['html', 'css', 'javascript']
if (this.$parent.$options.name === componentName) {
<html lang="zh-CN">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
return this.options
</body>
<meta content="width=device-width, initial-scale=1.0">
<template #default="{ message }">
data() {
export default {
* mixin
function _broadcast(componentName, eventName, ...params) {
</ul>
* @param {...any} params 事件参数
}
}
</template>
_broadcast.call(child, componentName, eventName, ...params)
}
},
</head>
})
this.$children.forEach(child => {
/**
/**
在上面的例子中,计算属性matchedOptions会在文本框内容message变化时筛选options里的数据,效果图如下所示:
<body>
},
message: ''

<ul>
相关热词: 功能
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jz/wp/5475.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
ludou_se_only); } add_action(s
时间:2021-01-23
-
所以经常导致输错密码的
时间:2021-01-23
-
WordPress措施打开速度慢的
时间:2021-01-22
-
WordPress回覆评论自动添加
时间:2021-01-22
-
我们可以通过下面的代码
时间:2021-01-22
-
如何修改WordPress默认脚色
时间:2021-01-20
-
同样的修改文件就行
时间:2021-01-20
-
少数善意的转载者既使没
时间:2021-01-20
热门文章
-
WordPress新手安装教程(图文)
时间:2020-12-28
-
在设置菜单中增加WordPress私密 隐藏的全部
时间:2021-01-10
-
WordPress博客程序常见错误的解决方法
时间:2020-12-28
-
WordPress程序打开速度慢的三种解决方法
时间:2021-01-10
-
wordpress使用代码在每篇文章尾部添加版权
时间:2020-12-14
-
WordPress博客措施常见错误的办理要领
时间:2021-01-15
-
关于WordPress的SEO优化相关的一些PHP页面脚
时间:2021-01-07
-
WordPress措施打开速度慢的三种办理要领
时间:2021-01-22
-
详解WordPress中的头像缓存和署理中的缓存
时间:2021-01-15
-
少数善意的转载者既使没有看到版权信息
时间:2021-01-20
